Databases are routinely upgraded to new versions, or new software patches are applied on existing versions, or the database is migrated to a new database management system. In each of these situations, it is common to compare the performance of a benchmark transaction workload in the new database environment to the same benchmark transaction workload in the old database environment. A benchmark transaction workload is typically a sequence of different transaction types. In a typical database environment, each transaction, for example, is a sequence of one or more Structured Query Language (SQL) statements. To compare the performances of the benchmark transaction workloads, corresponding instances of transactions in the new and old database environments are matched.
Typically, database transactions are multi-level transactions. That is, each transaction can include several SQL statements. In addition, while the SQL log records of a transaction will usually appear in the proper order in a database transaction log file, the database operation records from multiple transactions can be intermixed. Further, the different executions of a transaction workload will typically result in different sequences of database operation log file records. These factors can complicate matching of transactions between database transaction log files.